package in.model.base;
import android.os.Parcel;
import com.google.gson.JsonElement;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import in.data.annotation.Annotation;
import in.data.entity.Entity;
import in.data.entity.LinkEntity;
import in.lib.utils.Debug;
import in.lib.utils.SerialReaderUtil;
import in.lib.utils.SerialWriterUtil;
import in.model.AdnModel;
import lombok.Data;
@Data
public abstract class Draft extends AdnModel
{
protected String selectedAccountId;
protected String postText;
protected List<String> images;
protected int imageCount = 0;
protected List<Annotation> annotations;
protected List<LinkEntity> linkEntities;
protected long date = 0l;
public Draft()
{
this.date = System.currentTimeMillis();
this.images = new ArrayList<String>();
this.annotations = new ArrayList<Annotation>();
this.linkEntities = new ArrayList<LinkEntity>();
}
public abstract void save();
public abstract void delete();
public abstract Draft load(String id);
@Override public Model createFrom(JsonElement element)
{
// Not used
return null;
}
@Override public List<? extends Model> createListFrom(JsonElement element)
{
// Not used
return null;
}
@Override public String getVersion()
{
return "7dc55add-16ff-4a90-886e-7426e52db462";
}
@Override public Draft read(SerialReaderUtil util)
{
if (super.read(util) != null)
{
try
{
String version = util.readString();
if (!version.equals(getVersion())) return null;
selectedAccountId = util.readString();
postText = util.readString();
images = util.readStringList();
imageCount = util.readInt();
annotations = util.readModelList(Annotation.class);
linkEntities = util.readModelList(LinkEntity.class);
date = util.readLong();
return this;
}
catch (Exception e)
{
Debug.out(e);
}
}
return null;
}
@Override public void write(SerialWriterUtil util)
{
super.write(util);
try
{
util.writeString(getVersion());
util.writeString(selectedAccountId);
util.writeString(postText);
util.writeStringList(images);
util.writeInt(imageCount);
util.writeModelList(annotations);
util.writeModelList(linkEntities);
util.writeLong(date);
}
catch (Exception e)
{
Debug.out(e);
}
}
@Override public Draft createFrom(Parcel object)
{
return (Draft)super.createFrom(object);
}
}